﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tibet.Datos;
using Tibet.Datos.FabricaDatos;
using Tibet.Datos.Interfaces;
using Tibet.Entidades;

namespace Tibet.Logica
{
    /// <summary>
    /// Summary description for ReporteErroresProy
    /// </summary>
    public class ReporteErroresProy : Reporte
    {
        private List<Proyecto> Proyectos;




        public ReporteErroresProy(String Nombre)
        {
            this.Nombre = Nombre;
            this.Proyectos = new List<Proyecto>();
            CargarDatos();
        }

        override public String Graficar()
        {
            string respuesta = "<table cellpadding='10px' border='1'><tr><td></td><td>2009</td><td>2010</td><td>2011</td></tr>";
            FabricaDao FNuevo = FabricaDao.ObtenerFabricaDeDao(1);
            IDaoAccesoReporte miBd = FNuevo.ObtenerDaoSqlServerReporte();
            foreach (Proyecto a in Proyectos)
            {
                if (a.Id != 0)
                {
                    respuesta = respuesta + "<tr><td>" + a.Nombre + "</td>";
                    respuesta = respuesta + "<td>" + miBd.ConsultarErroresPorProyecto(a.Id, 2009).Count + "</td>";
                    respuesta = respuesta + "<td>" + miBd.ConsultarErroresPorProyecto(a.Id, 2010).Count + "</td>";
                    respuesta = respuesta + "<td>" + miBd.ConsultarErroresPorProyecto(a.Id, 2011).Count + "</td></tr>";
                }
            }
            respuesta = respuesta + "</table>";
            return respuesta;
    
        }

        override public void CargarDatos()
        {
            FabricaDao FNuevo = FabricaDao.ObtenerFabricaDeDao(1);
            IDaoAccesoReporte miBd = FNuevo.ObtenerDaoSqlServerReporte();
            this.Proyectos = miBd.ConsultarProyectos();


        }

        override public String MostrarDatos()
        {

            string respuesta = "<p><h3> Total de Errores </h3></p><p>";
            FabricaDao FNuevo = FabricaDao.ObtenerFabricaDeDao(1);
            IDaoAccesoReporte miBd = FNuevo.ObtenerDaoSqlServerReporte();
            int aux;
            foreach (Proyecto a in Proyectos)
            {
                if (a.Id != 0)
                {
                    aux = miBd.ConsultarErroresPorProyecto(a.Id, 2009).Count + miBd.ConsultarErroresPorProyecto(a.Id, 2010).Count + miBd.ConsultarErroresPorProyecto(a.Id, 2011).Count;
                    respuesta = respuesta + a.Nombre + ": "+aux+"<br>";

                }
            }
            respuesta = respuesta + "</p>";
            return respuesta;
        }
    }
}
